#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void sort(int a[], int n)  //冒泡排序(升序排序)
{
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n - i - 1; j++)
		{
			if (a[j] > a[j + 1])
			{
				int t = a[j];
				a[j] = a[j + 1];
				a[j + 1] = t;
			}
		}	
	}
}

void print(int a[], int n)  //输出数组中的所有元素
{
	for (int i = 0; i < n; i++)
	{
		if (i == 0)
			printf("%d", a[i]);
		else
			printf(" %d", a[i]);
	}
}

int main()
{
	int n, a[100], b[100], c[100], x = 0, y = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)  //输入n个整数
		scanf("%d", &a[i]);

	for (int i = 0; i < n; i++)
	{
		if (a[i] % 2)
			b[x++] = a[i];  //将奇数元素放入b[]
		else
			c[y++] = a[i];  //将偶数元素放入c[]
	}

	sort(b, x);  //奇数元素数组冒泡排序(升序)
	print(b, x);  //打印奇数
	printf(" ");
	sort(c, y);  //偶数元素数组冒泡排序(升序)
	print(c, y);  //打印偶数
	return 0;
}